package lzupdater.gui.listeners;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JCheckBox;

import lzupdater.utils.Profile;
import lzupdater.utils.Profile.ProfilePropertyId;

//LZRosterUpdater, a java client to update LZRoster
//Copyright (C) 2008 Fraskor from Krasus (e-mail: fraskor@gmail.com)
//
//This file is part of LZRosterUpdater.
//
//LZRosterUpdater is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

public class LZCheckBoxListener implements ProfileListener, ActionListener {

	private final JCheckBox checkBox;
	private Profile profile;
	private ProfilePropertyId propertyId;

	public LZCheckBoxListener(JCheckBox checkBox, ProfilePropertyId propertyId) {
		this.checkBox = checkBox;
		this.propertyId = propertyId;
		setProfile(null);
	}

	public void setProfile(Profile profile) {
		this.profile = profile;
		checkBox.setEnabled(profile != null);
		if (profile != null) {
			String value = profile.getProperty(propertyId);
			boolean checked = Boolean.parseBoolean(value);
			checkBox.setSelected(checked);
		} else {
			checkBox.setSelected(false);
		}
	}

	public void actionPerformed(ActionEvent e) {
		if (profile != null) {
			profile.setProperty(propertyId, Boolean.toString(checkBox
					.isSelected()));
		}
	}

}
